package com.yanqu.road.entity.activity.langyabang.entity;

import com.yanqu.road.entity.player.UserBaseInfo;
import com.yanqu.road.utils.property.Property;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class LangYaUserEvent {
    private long targetId;          //目标id
    private Map<Integer,LangYaUserBuilding> targetBuilding;         //目标建筑
    private Map<Integer,LangYaTypePatrons> targetPatrons;           //目标门客及加成后战力
    private long npcAllBlood;                                       //npc配置的最大金币
    private long npcHasRobBlood;                                    //已经夺取npc的金币
    private int remainOperateTime;                                  //剩余操作次数
    private int pvpWinTime;                                         //pvp胜利次数
    private Property temporaryReward;                               //暂存奖励
    private int addition;                                           //加成
    private int battlePatronType;                                   //出战门客类型
    private int belongDeclareWarUid;                                //所属的宣战Uid
    private int maxNpcAttackTime;                                   //pve最大攻击次数


    public long getTargetId() {
        return targetId;
    }

    public void setTargetId(long targetId) {
        this.targetId = targetId;
    }

    public Map<Integer, LangYaUserBuilding> getTargetBuilding() {
        return targetBuilding;
    }

    public void setTargetBuilding(Map<Integer, LangYaUserBuilding> targetBuilding) {
        this.targetBuilding = targetBuilding;
    }

    public void setTargetPatrons(Map<Integer, LangYaTypePatrons> targetPatrons) {
        this.targetPatrons = targetPatrons;
    }



    public int getRemainOperateTime() {
        return remainOperateTime;
    }

    public void setRemainOperateTime(int remainOperateTime) {
        this.remainOperateTime = remainOperateTime;
    }

    public int getPvpWinTime() {
        return pvpWinTime;
    }

    public void setPvpWinTime(int pvpWinTime) {
        this.pvpWinTime = pvpWinTime;
    }

    public Property getTemporaryReward() {
        return temporaryReward;
    }

    public void setTemporaryReward(Property temporaryReward) {
        this.temporaryReward = temporaryReward;
    }

    public int getMaxNpcAttackTime() {
        return maxNpcAttackTime;
    }

    public void setMaxNpcAttackTime(int maxNpcAttackTime) {
        this.maxNpcAttackTime = maxNpcAttackTime;
    }

    public static LangYaUserEvent getNewEmptyEvent(){
        LangYaUserEvent newEvent = new LangYaUserEvent();
        newEvent.setTargetId(0);
        newEvent.setNpcAllBlood(0);
        newEvent.setNpcAllBlood(0);
        newEvent.setRemainOperateTime(0);
        newEvent.setPvpWinTime(0);
        newEvent.setTemporaryReward(new Property());
        newEvent.setTargetBuilding(new ConcurrentHashMap<>());
        newEvent.setTargetPatrons(new ConcurrentHashMap<>());
        newEvent.setAddition(0);
        newEvent.setBattlePatronType(0);
        newEvent.setBelongDeclareWarUid(-1);
        newEvent.setMaxNpcAttackTime(0);
        return newEvent;
    }

    public Map<Integer, LangYaTypePatrons> getTargetPatrons() {
        return targetPatrons;
    }

    public int getAddition() {
        return addition;
    }

    public void setAddition(int addition) {
        this.addition = addition;
    }

    public long getNpcAllBlood() {
        return npcAllBlood;
    }

    public void setNpcAllBlood(long npcAllBlood) {
        this.npcAllBlood = npcAllBlood;
    }

    public long getNpcHasRobBlood() {
        return npcHasRobBlood;
    }

    public void setNpcHasRobBlood(long npcHasRobBlood) {
        this.npcHasRobBlood = npcHasRobBlood;
    }

    public int getBattlePatronType() {
        return battlePatronType;
    }

    public void setBattlePatronType(int battlePatronType) {
        this.battlePatronType = battlePatronType;
    }

    public int getBelongDeclareWarUid() {
        return belongDeclareWarUid;
    }

    public void setBelongDeclareWarUid(int belongDeclareWarUid) {
        this.belongDeclareWarUid = belongDeclareWarUid;
    }
}
